#include <stdio.h>

// 计算行数 sizeof(name)/sizeof(name[0])

int main(int argc, char const *argv[])
{
    // 初始化方式
    int arr_1[5][3] = {
        {1 , 2 , 3},
        {4 , 5 , 6},
        {7 , 8 , 9},
    };
    // 只写行 按照初始化数据的行数进行计算
    int arr_2[][3] = {
        {1 , 2 , 3},
        {4 , 5 , 6},
        {7 , 8 , 9},
    };

    printf("arr_1 行数 : %ld 列数 : %ld \n" , \
        sizeof(arr_1)/sizeof(arr_1[0]), \
        sizeof(arr_1[0])/sizeof(int)    
    );
    

    printf("arr_2 行数 : %ld 列数 : %ld \n" , \
        sizeof(arr_2)/sizeof(arr_2[0]), \
        sizeof(arr_2[0])/sizeof(int)    
    );


    // 遍历二维数组 需要使用循环嵌套
    for (size_t i = 0; i < sizeof(arr_1)/sizeof(arr_1[0]); i++)
    {
        for (size_t j = 0; j < sizeof(arr_1[0])/sizeof(int); j++)
        {
            printf("arr_1[%ld][%ld] = [%d] = [%p]\n" , i , j , arr_1[i][j] , &arr_1[i][j]);
        }
        
    }
    

    // 错误的❌
    // int arr_2[3][] = {
    //     {1 , 2 , 3},
    //     {4 , 5 , 6},
    //     {7 , 8 , 9},
    // };

    return 0;
}





